The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
An issue tracking system (ITS) is a system used to manage work items or “issues”. Example ITSs include JIRA, JIRA Service Desk and JIRA Software which are commercially available from Atlassian Pty Ltd., Sydney, Australia. ITSs are deployed in a wide variety of applications including organizational customer support call centers and for software development teams to use in project management and bug tracking. When deployed for software development projects, an ITS may be used with other systems, such as source code management (SCM) systems (also known as ‘revision control’ or ‘version control systems’). These are used to track and manage computer program source code as the code is written and revised. Although SCM systems are predominantly used to track source code they can be used to track other data.
Examples of SCM systems include systems such as MERCURIAL, GIT and Bitbucket (commercially available from Atlassian Pty Ltd). Generally speaking, SCM systems store data—typically source code—in repositories and facilitate access to that data from multiple different client systems. In order to work on a project, a user (using a client system) creates a local copy of the relevant data (e.g. program source code) from a repository and works on that local copy. If the user makes changes that are to be incorporated into the remote version of the data, the user's local copy of the data—or at least those portions that have been changed—is written back to the repository using the SCM system. The SCM system controls access to the repository data and also manages version control for the data.
SCM systems typically manage and track numerous documents/source code files across multiple repositories and for numerous users. These documents/files managed by SCM systems can be changed frequently as users add new documents/files, delete documents/files, and make changes to existing documents/files.
ITSs and SCMs are separate systems that provide independent functionality. In certain cases, they can be integrated and communicate with each other. Data may be shared and synchronized between systems, allowing information from one system to be linked with and displayed on the other system.
Synchronizing data between and ITS and SCMs requires processing large streams of data. Disruptions in synchronization processes often occur and can be caused by network issues, outage of service of one of the ITS and SCMs, or bugs in code that is utilized by the synchronization procedures. Disruptions can lead to storing fragmented data and in some cases, wasting of compute resources by having to restart a synchronization process from the beginning.
Techniques are desired to effectively mitigate the effects of synchronization disruptions.